#include "MensajeMostrarDados.h"
#include <sstream>

MensajeMostrarDados::MensajeMostrarDados(list<Dado*>& dadatac,
		list<Dado*>& daddef,Territorio* atacante, Territorio* defensor) :
			dadosAtacante(dadatac),dadosDefensor(daddef)
{
	this->atacante = atacante;
	this->defensor = defensor;
}
		
string MensajeMostrarDados :: getAtacante(){
	return this->atacante->getNombre();
}

string MensajeMostrarDados :: getDefensor(){
	return this->defensor->getNombre();
}

list<Dado*>& MensajeMostrarDados::getDadosAtacante() {
	return dadosAtacante;
}

list<Dado*>& MensajeMostrarDados::getDadosDefensor() {
	return dadosDefensor;
}
		
string MensajeMostrarDados::toString() {
	return "MensajeMostrarDados";
}

string MensajeMostrarDados::generarText() {
	string mensaje = "";
	list<Dado*>::iterator it = dadosAtacante.begin();
	for (int i = 1; i <= dadosAtacante.size(); i++) {
		std::stringstream numero;
		numero<<i;
		mensaje += "dadoAtacante"+numero.str()+"=\"";
		std::stringstream valor;
		valor<<(*it)->getValor();
		mensaje += valor.str()+"\" ";
		it++;
	}
	it = dadosDefensor.begin();
	for (int i = 1; i <= dadosDefensor.size(); i++) {
		std::stringstream numero;
		numero<<i;
		mensaje += "dadoDefensor"+numero.str()+"=\"";
		std::stringstream valor;
		valor<<(*it)->getValor();
		mensaje += valor.str()+"\" ";
		it++;
	}
	mensaje += " atacante=\""+atacante->getNombre()+"\" defensor=\""+defensor->getNombre()+"\"";
	return mensaje;
}

string MensajeMostrarDados::generarXML() {
	string mensaje = "<dados ";
	list<Dado*>::iterator it = dadosAtacante.begin();
	for (int i = 1; i <= dadosAtacante.size(); i++) {
		std::stringstream numero;
		numero<<i;
		mensaje += "dadoAtacante"+numero.str()+"=\"";
		std::stringstream valor;
		valor<<(*it)->getValor();
		mensaje += valor.str()+"\" ";
		it++;
	}
	it = dadosDefensor.begin();
	for (int i = 1; i <= dadosDefensor.size(); i++) {
		std::stringstream numero;
		numero<<i;
		mensaje += "dadoDefensor"+numero.str()+"=\"";
		std::stringstream valor;
		valor<<(*it)->getValor();
		mensaje += valor.str()+"\" ";
		it++;
	}
	mensaje += " atacante=\""+atacante->getNombre()+"\" defensor=\""+defensor->getNombre()+"\"";
	mensaje += "/>\n";
	return mensaje;
}

MensajeMostrarDados::~MensajeMostrarDados()
{
}
